package page.service;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import page.request.PageRequest;

import java.util.List;

/**
 * @Auther lolineet
 * @Email tj.zhanghongwei@163.com
 * @Date 2021/11/24 14:19
 * @Description service分页插件
 */
public interface BaseService<T,U> {

    /**
     * 分页查询
     *
     * @param request 请求
     * @return {@link PageInfo<U>}
     */
    default PageInfo<U> page(PageRequest<T> request){
        return PageHelper.startPage(request).doSelectPageInfo(()->list(request.getParam()));
    }

    /**
     * 列表查询
     *
     * @param request 请求
     * @return {@link List<U>}
     */
    List<U> list(T request);
}
